import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args) {
        int[] date = inputDate();
        System.out.println(dayOfYear(date));
    }

    /**
     * 输入年月日
     *
     * @return 返回年月日数组
     */
    private static int[] inputDate() {
        int[] date = new int[3];
        System.out.print("请输入年份：");
        date[0] = new Scanner(System.in).nextInt();
        System.out.print("请输入月份：");
        date[1] = new Scanner(System.in).nextInt();
        System.out.print("请输入日期：");
        date[2] = new Scanner(System.in).nextInt();
        return date;
    }

    /**
     * 判断是否为闰年
     *
     * @param year 输入年份
     * @return true 为闰年 false 为平年
     */
    private static boolean leapYear(int year) {
        return (year % 4 == 0 || year % 100 != 0) || year % 400 == 0;
    }

    /**
     * 判断输入月份天数
     *
     * @param year  输入年份
     * @param month 输入月份
     * @return 返回输入月份的天数
     */
    private static int daysOfMonth(int year, int month) {
        int days;
        switch (month) {
            case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                days = 31;
                return days;
            case 4: case 6: case 9: case 11:
                days = 30;
                return days;
            case 2:
                if (leapYear(year)) {
                    days = 29;
                } else {
                    days = 28;
                }
                return days;
            default:
                System.out.println("月份输入非法！！！");
                System.exit(-1);
                return -1;
        }
    }

    /**
     * 判断输入是否合法
     *
     * @param year 输入年份
     * @param days 输入日期
     */
    private static void judgeInput(int year, int month, int days) {
        if (year < 0) {
            System.out.println("年份输入非法！！！");
            System.exit(-1);
        }
        if (days < 1 || days > daysOfMonth(year, month)) {
            System.out.println("日期输入非法！！！");
            System.exit(-1);
        }
    }

    /**
     * 计算输入日期在输入年份中的第几天
     *
     * @param date 输入年月日
     * @return 返回输入日期在输入年份中的第几天
     */
    private static int dayOfYear(int[] date) {
        judgeInput(date[0], date[1], date[2]);
        daysOfMonth(date[0], date[1]);
        int dayOfYear = date[2];
        for (int i = 1; i < date[1]; i++) {
            dayOfYear += daysOfMonth(date[0], i);
        }
        return dayOfYear;
    }
}
